This invention relates generally to a system and method for connecting a computer system to a computer bus and in particular to a system and method for interfacing a computer system to a standard universal serial peripheral device bus.
In a typical computer system, a computer having a microprocessor may be connected to a plurality of peripheral devices, such as a printer or a modem, by one or more electrical buses and several different communications ports. Different peripheral devices have interfaces with different form factors and electrical characteristics, and these communications ports are used for a variety of different peripheral devices. A typical desktop computer may have a modem, a printer, a keyboard and a mouse connected to it. The modem may be connected to a serial port, the printer may be connected to a parallel port, the keyboard may be connected to a dedicated keyboard port and the mouse may be connected to a dedicated mouse port. Each of these communication ports may have different electrical characteristics, require different connectors and each has a different cable that runs from the peripheral device to the connector which connects to the computer communications port. For example, the serial port, the parallel port, the keyboard port and the mouse port all have different characteristics, cables and different connectors. The result is a large number of diverse interfaces and cables that must be used. In addition, the electrical design of these communications ports typically requires that the computer be turned off before connecting and/or disconnecting a peripheral device from the port because the port may be permanently damaged otherwise. This prompted the design of a single standardized peripheral interface connection system which reduces the need for multiple connectors and cables, and permits the connection and disconnection of a peripheral device while the computer is turned on.
A new emerging technology called the Universal Serial Bus (USB) is a system intended to create a single standardized peripheral device connection system. The USB makes the task of connecting peripheral devices to computers easier and more reliable since it uses a standardized connector and form factor, and makes operating those peripheral devices with the computer, easier and more reliable than with the various different types of communication ports. The computer to which these peripheral devices are connected by the USB is known as the "host computer". The USB replaces the multiple cable and connector types with a single standardized connection system. The USB also permits the connection and disconnection of USB compatible peripheral devices while the computer is turned on which eliminates the typical turning off and rebooting of the computer in order to connect or disconnect a peripheral device to the computer.
When a peripheral device is first connected to the USB and the host computer through a standard USB communications port, the presence of the connected peripheral device is detected and a configuration process of the USB for the connected peripheral device, known as device enumeration, begins. The enumeration process assigns a unique USB address to the connected peripheral device, queries the connected peripheral device about its requirements and capabilities, writes data about the connected peripheral device into the host computer's operating system, and loads the appropriate software device driver from a storage location into the host computer's operating system. During the query, a data table stored in the peripheral device, which contains the particular peripheral device's configuration information, is read from the peripheral device into the host computer's memory. Upon completion of the enumeration process, the connected peripheral device is recognized by the host computer's operating system and may be used by application software being executed by the microprocessor of the host computer. The association of the device with the software device driver cannot be subsequently changed.
In a serial bus system, such as the USB, the only opportunity for associating software device drivers with a peripheral device is at the time when the peripheral device is plugged into the USB and the enumeration process occurs. Thus, to alter the configuration or personality of a peripheral device, such as downloading new code or configuration information into the memory of the peripheral device, the host computer system must detect a peripheral device connection or a disconnection and then a reconnection.
The USB provides a number of advantages, as described above, over standard peripheral device connection techniques. The USB, however, does not provide a system and method for easily altering the configuration data for a peripheral device. In addition, the USB also does not provide a method for easily changing the software device driver associated with a particular peripheral device.
Thus, there is a need for a system and method for interfacing to a universal serial bus which avoids these and other problems of known systems and methods, and it is to this end that the present invention is directed.